function sumBingNumber (a, b) {
  // 首先用字符串的方式来保存大数，这样数字在数学表示上就不会发生变化
  let res = ''
  // 初始化res，temp来保存中间的计算结果，并将两个字符串转化为数组，以便进行每一位的加法运算
  let temp = 0
  a = a.split('')
  b = b.split('')
  // 将两个数组的对应的位进行相加，两个数相加的结果可能大于10，所以可能要进位，对10进行取余操作，将结果保存在当前位
  while (a.length || b.length || temp) {
    temp += ~~a.pop() + ~~b.pop()
    res = (temp % 10) + res // 最后一位相加的结果对10取余拼接在结果的前面 因为是从后向前计算
    temp = temp > 9 // 判断当前位是不是大于9,判断是否有进位,若是就将temp复制为true加法中会转换成1 不是就是false 加法中转换成0 // 一直重复上述操作知道结束
  }
  return res.replace(/^0+/, '')
}
console.log(sumBingNumber('000000009999999999999999999999999999999999', '99999999999999999999999999999999999'));
// console.log(1111111111111111111111111111+222222222222222222222222222222222);

function dashuqiuhe (a, b) {
  let anum = '' + a
  let bnum = '' + b
  a = anum.split('')
  b = bnum.split('')
  let temp = null
  let res = ''
  while (a.length || b.length || temp) {
    temp += ~~a.pop() + ~~b.pop()
    res = temp % 10 + res
    temp = temp > 9
  }
  return res.replace(/^0+/, '')
}
console.log(dashuqiuhe('00000009999999999999999999999999999999999', '99999999999999999999999999999999999'));